package com.raitcon.hibernate.bean;
// Generated 27/05/2014 07:54:56 AM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Nota generated by hbm2java
 */
@Entity
@Table(name="nota"
    ,schema="public"
)
public class Nota  implements java.io.Serializable {


     private long idNota;
     private Empleado empleado;
     private GradoSeccion gradoSeccion;
     private Asignatura asignatura;
    // private int calificacion;
     private CronogramaEvaluacion  cronogramaEvaluacion;
     private Date fechaRegistro;
     private Grado grado;
     private Seccion seccion;
     private Set<DetalleNota> detalleNotas = new HashSet<DetalleNota>(0);

    public Nota() {
    }
    
    public Nota(long idNota) {
        this.idNota = idNota;
       
    }

	
    public Nota(long idNota, Empleado empleado, GradoSeccion gradoSeccion,
            Asignatura asignatura,  CronogramaEvaluacion cronogramaEvaluacion, Date fechaRegistro) {
        this.idNota = idNota;
        this.empleado = empleado;
        this.gradoSeccion = gradoSeccion;
        this.asignatura = asignatura;
       this.cronogramaEvaluacion = cronogramaEvaluacion;
        this.fechaRegistro = fechaRegistro;
    }
    public Nota(long idNota, Empleado empleado, GradoSeccion gradoSeccion,
            Asignatura asignatura, CronogramaEvaluacion cronogramaEvaluacion, Date fechaRegistro,
            Set<DetalleNota> detalleNotas) {
       this.idNota = idNota;
       this.empleado = empleado;
       this.gradoSeccion = gradoSeccion;
       this.asignatura = asignatura;
       this.cronogramaEvaluacion = cronogramaEvaluacion;
       this.fechaRegistro = fechaRegistro;
       this.detalleNotas = detalleNotas;
    }
   
    @SequenceGenerator(allocationSize=1, initialValue=1, sequenceName="secuencia_id_nota", name="secuencia_id_nota")
    @GeneratedValue(generator="secuencia_id_nota", strategy=GenerationType.SEQUENCE)
    @Id 
    @Column(name="id_nota", unique=true, nullable=false)
    public long getIdNota() {
        return this.idNota;
    }
    
    public void setIdNota(long idNota) {
        this.idNota = idNota;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_empleado", nullable=false)
    public Empleado getEmpleado() {
        return this.empleado;
    }
    
    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_grado_seccion", nullable=true)
    public GradoSeccion getGradoSeccion() {
        return this.gradoSeccion;
    }
    
    public void setGradoSeccion(GradoSeccion gradoSeccion) {
        this.gradoSeccion = gradoSeccion;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_asignatura", nullable=false)
    public Asignatura getAsignatura() {
        return this.asignatura;
    }
    
    public void setAsignatura(Asignatura asignatura) {
        this.asignatura = asignatura;
    }
    
     
    
    
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="fecha_registro", nullable=false, length=29)
    public Date getFechaRegistro() {
        return this.fechaRegistro;
    }
    
    public void setFechaRegistro(Date fechaRegistro) {
        this.fechaRegistro = fechaRegistro;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="nota")
    public Set<DetalleNota> getDetalleNotas() {
        return this.detalleNotas;
    }
    
    public void setDetalleNotas(Set<DetalleNota> detalleNotas) {
        this.detalleNotas = detalleNotas;
    }

    /**
     * @return the grado
     */
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_grado", nullable=false)
    public Grado getGrado() {
        return grado;
    }

    /**
     * @param grado the grado to set
     */
    public void setGrado(Grado grado) {
        this.grado = grado;
    }

    /**
     * @return the seccion
     */
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_seccion", nullable=false)
    public Seccion getSeccion() {
        return seccion;
    }

    /**
     * @param seccion the seccion to set
     */
    public void setSeccion(Seccion seccion) {
        this.seccion = seccion;
    }

    /**
     * @return the cronogramaEvaluacion
     */
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_cronograma_evaluacion", nullable=false)
    public CronogramaEvaluacion getCronogramaEvaluacion() {
        return cronogramaEvaluacion;
    }

    /**
     * @param cronogramaEvaluacion the cronogramaEvaluacion to set
     */
    public void setCronogramaEvaluacion(CronogramaEvaluacion cronogramaEvaluacion) {
        this.cronogramaEvaluacion = cronogramaEvaluacion;
    }




}


